package domein;

import java.util.ArrayList;
import java.util.List;

import util.Md5;

public class Medewerkers
{
/*Attributen*/
	private List<Medewerker> medewerkers;

/*Constructor*/
	public Medewerkers(List<Medewerker> medewerkers)
	{
		setMedewerkers(medewerkers);
	}

/*Methodes*/
	public void voegMedewerkerToe(Medewerker medewerker)
	{
		medewerkers.add(medewerker);
	}
	public Medewerker geefMedewerker(int index)
	{
		return medewerkers.get(index);
	}
	public List<String> geefDetails()
	{
		List<String> details = new ArrayList<String>();
		for (Medewerker eenGebruiker : medewerkers)
		{
			details.add(eenGebruiker.toString());
		}
		return details;
	}
	public Medewerker loginMedewerker(String naam, String wachtwoord) throws IllegalArgumentException
	{
		Md5 md5Hash;
		
		//Controle op lege naam
		if(naam==null || naam.trim().equals(""))
			throw new IllegalArgumentException("Geef een gebruikersnaam in!");
		
		//Controle op leeg paswoord
		if(wachtwoord==null || wachtwoord.trim().equals(""))
			throw new IllegalArgumentException("Geef een wachtwoord in!");
		
		md5Hash = new Md5(wachtwoord);
		
		//Controleer of de gebruikersnaam is gekend
		for (Medewerker eenGebruiker : medewerkers)
		{
			if (eenGebruiker.getMedewerkerNaam().equalsIgnoreCase(naam))
			{
				//Controleer of het wachtwoord juist is
				if(eenGebruiker.getMedewerkerPaswoord().equals(md5Hash.getMd5Hash()))
					return eenGebruiker;
				else
					throw new IllegalArgumentException("Gebruikersnaam en wachtwoord komen niet overeen!");
			}
		}
		throw new IllegalArgumentException("Deze inlognaam is niet gekend!");
	}

/*Getters & setters*/
	public List<Medewerker> getMedewerkers()
	{
		return medewerkers;
	}
	public void setMedewerkers(List<Medewerker> gebruikers)
	{
		this.medewerkers = gebruikers;
	}
}